var Pass = "undefined" == typeof window.Pass ? {} : window.Pass;
(function () {
    var t = null, e = null, n = void 0;
    !function (e, r) {
        "object" == typeof n ? module.exports = n = r() : "function" == typeof t && t.amd ? t([], r) : e.CryptoJS = r()
    }(this, function () {
        var t = t || function (t, e) {
            var n = Object.create || function () {
                function t() {
                }

                return function (e) {
                    var n;
                    return t.prototype = e, n = new t, t.prototype = null, n
                }
            }(), r = {}, i = r.lib = {}, o = i.Base = function () {
                return {
                    extend: function (t) {
                        var e = n(this);
                        return t && e.mixIn(t), e.hasOwnProperty("init") && this.init !== e.init || (e.init = function () {
                            e.$super.init.apply(this, arguments)
                        }), e.init.prototype = e, e.$super = this, e
                    }, create: function () {
                        var t = this.extend();
                        return t.init.apply(t, arguments), t
                    }, init: function () {
                    }, mixIn: function (t) {
                        for (var e in t) t.hasOwnProperty(e) && (this[e] = t[e]);
                        t.hasOwnProperty("toString") && (this.toString = t.toString)
                    }, clone: function () {
                        return this.init.prototype.extend(this)
                    }
                }
            }(), s = i.WordArray = o.extend({
                init: function (t, n) {
                    t = this.words = t || [], this.sigBytes = n != e ? n : 4 * t.length
                }, toString: function (t) {
                    return (t || a).stringify(this)
                }, concat: function (t) {
                    var e = this.words, n = t.words, r = this.sigBytes, i = t.sigBytes;
                    if (this.clamp(), r % 4) for (var o = 0; i > o; o++) {
                        var s = n[o >>> 2] >>> 24 - o % 4 * 8 & 255;
                        e[r + o >>> 2] |= s << 24 - (r + o) % 4 * 8
                    } else for (var o = 0; i > o; o += 4) e[r + o >>> 2] = n[o >>> 2];
                    return this.sigBytes += i, this
                }, clamp: function () {
                    var e = this.words, n = this.sigBytes;
                    e[n >>> 2] &= 4294967295 << 32 - n % 4 * 8, e.length = t.ceil(n / 4)
                }, clone: function () {
                    var t = o.clone.call(this);
                    return t.words = this.words.slice(0), t
                }, random: function (e) {
                    for (var n, r = [], i = function (e) {
                        var e = e, n = 987654321, r = 4294967295;
                        return function () {
                            n = 36969 * (65535 & n) + (n >> 16) & r, e = 18e3 * (65535 & e) + (e >> 16) & r;
                            var i = (n << 16) + e & r;
                            return i /= 4294967296, i += .5, i * (t.random() > .5 ? 1 : -1)
                        }
                    }, o = 0; e > o; o += 4) {
                        var c = i(4294967296 * (n || t.random()));
                        n = 987654071 * c(), r.push(4294967296 * c() | 0)
                    }
                    return new s.init(r, e)
                }
            }), c = r.enc = {}, a = c.Hex = {
                stringify: function (t) {
                    for (var e = t.words, n = t.sigBytes, r = [], i = 0; n > i; i++) {
                        var o = e[i >>> 2] >>> 24 - i % 4 * 8 & 255;
                        r.push((o >>> 4).toString(16)), r.push((15 & o).toString(16))
                    }
                    return r.join("")
                }, parse: function (t) {
                    for (var e = t.length, n = [], r = 0; e > r; r += 2) n[r >>> 3] |= parseInt(t.substr(r, 2), 16) << 24 - r % 8 * 4;
                    return new s.init(n, e / 2)
                }
            }, u = c.Latin1 = {
                stringify: function (t) {
                    for (var e = t.words, n = t.sigBytes, r = [], i = 0; n > i; i++) {
                        var o = e[i >>> 2] >>> 24 - i % 4 * 8 & 255;
                        r.push(String.fromCharCode(o))
                    }
                    return r.join("")
                }, parse: function (t) {
                    for (var e = t.length, n = [], r = 0; e > r; r++) n[r >>> 2] |= (255 & t.charCodeAt(r)) << 24 - r % 4 * 8;
                    return new s.init(n, e)
                }
            }, f = c.Utf8 = {
                stringify: function (t) {
                    try {
                        return decodeURIComponent(escape(u.stringify(t)))
                    } catch (t) {
                        throw new Error("Malformed UTF-8 data")
                    }
                }, parse: function (t) {
                    return u.parse(unescape(encodeURIComponent(t)))
                }
            }, p = i.BufferedBlockAlgorithm = o.extend({
                reset: function () {
                    this._data = new s.init, this._nDataBytes = 0
                }, _append: function (t) {
                    "string" == typeof t && (t = f.parse(t)), this._data.concat(t), this._nDataBytes += t.sigBytes
                }, _process: function (e) {
                    var n = this._data, r = n.words, i = n.sigBytes, o = this.blockSize, c = 4 * o, a = i / c;
                    a = e ? t.ceil(a) : t.max((0 | a) - this._minBufferSize, 0);
                    var u = a * o, f = t.min(4 * u, i);
                    if (u) {
                        for (var p = 0; u > p; p += o) this._doProcessBlock(r, p);
                        var d = r.splice(0, u);
                        n.sigBytes -= f
                    }
                    return new s.init(d, f)
                }, clone: function () {
                    var t = o.clone.call(this);
                    return t._data = this._data.clone(), t
                }, _minBufferSize: 0
            }), d = (i.Hasher = p.extend({
                cfg: o.extend(), init: function (t) {
                    this.cfg = this.cfg.extend(t), this.reset()
                }, reset: function () {
                    p.reset.call(this), this._doReset()
                }, update: function (t) {
                    return this._append(t), this._process(), this
                }, finalize: function (t) {
                    t && this._append(t);
                    var e = this._doFinalize();
                    return e
                }, blockSize: 16, _createHelper: function (t) {
                    return function (e, n) {
                        return new t.init(n).finalize(e)
                    }
                }, _createHmacHelper: function (t) {
                    return function (e, n) {
                        return new d.HMAC.init(t, n).finalize(e)
                    }
                }
            }), r.algo = {});
            return r
        }(Math);
        return t
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min"), e("./sha1.min"), e("./hmac.min")) : "function" == typeof t && t.amd ? t(["./core.min", "./sha1.min", "./hmac.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        return function () {
            var e = t, n = e.lib, r = n.Base, i = n.WordArray, o = e.algo, s = o.MD5, c = o.EvpKDF = r.extend({
                cfg: r.extend({keySize: 4, hasher: s, iterations: 1}), init: function (t) {
                    this.cfg = this.cfg.extend(t)
                }, compute: function (t, e) {
                    for (var n = this.cfg, r = n.hasher.create(), o = i.create(), s = o.words, c = n.keySize, a = n.iterations; s.length < c;) {
                        u && r.update(u);
                        var u = r.update(t).finalize(e);
                        r.reset();
                        for (var f = 1; a > f; f++) u = r.finalize(u), r.reset();
                        o.concat(u)
                    }
                    return o.sigBytes = 4 * c, o
                }
            });
            e.EvpKDF = function (t, e, n) {
                return c.create(n).compute(t, e)
            }
        }(), t.EvpKDF
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min")) : "function" == typeof t && t.amd ? t(["./core.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        return function () {
            function e(t, e, n) {
                for (var r = [], o = 0, s = 0; e > s; s++) if (s % 4) {
                    var c = n[t.charCodeAt(s - 1)] << s % 4 * 2, a = n[t.charCodeAt(s)] >>> 6 - s % 4 * 2;
                    r[o >>> 2] |= (c | a) << 24 - o % 4 * 8, o++
                }
                return i.create(r, o)
            }

            var n = t, r = n.lib, i = r.WordArray, o = n.enc;
            o.Base64 = {
                stringify: function (t) {
                    var e = t.words, n = t.sigBytes, r = this._map;
                    t.clamp();
                    for (var i = [], o = 0; n > o; o += 3) for (var s = e[o >>> 2] >>> 24 - o % 4 * 8 & 255, c = e[o + 1 >>> 2] >>> 24 - (o + 1) % 4 * 8 & 255, a = e[o + 2 >>> 2] >>> 24 - (o + 2) % 4 * 8 & 255, u = s << 16 | c << 8 | a, f = 0; 4 > f && n > o + .75 * f; f++) i.push(r.charAt(u >>> 6 * (3 - f) & 63));
                    var p = r.charAt(64);
                    if (p) for (; i.length % 4;) i.push(p);
                    return i.join("")
                }, parse: function (t) {
                    var n = t.length, r = this._map, i = this._reverseMap;
                    if (!i) {
                        i = this._reverseMap = [];
                        for (var o = 0; o < r.length; o++) i[r.charCodeAt(o)] = o
                    }
                    var s = r.charAt(64);
                    if (s) {
                        var c = t.indexOf(s);
                        -1 !== c && (n = c)
                    }
                    return e(t, n, i)
                }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
            }
        }(), t.enc.Base64
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min"), e("./evpkdf.min")) : "function" == typeof t && t.amd ? t(["./core.min", "./evpkdf.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        t.lib.Cipher || function (e) {
            var n = t, r = n.lib, i = r.Base, o = r.WordArray, s = r.BufferedBlockAlgorithm, c = n.enc,
                a = (c.Utf8, c.Base64), u = n.algo, f = u.EvpKDF, p = r.Cipher = s.extend({
                    cfg: i.extend(), createEncryptor: function (t, e) {
                        return this.create(this._ENC_XFORM_MODE, t, e)
                    }, createDecryptor: function (t, e) {
                        return this.create(this._DEC_XFORM_MODE, t, e)
                    }, init: function (t, e, n) {
                        this.cfg = this.cfg.extend(n), this._xformMode = t, this._key = e, this.reset()
                    }, reset: function () {
                        s.reset.call(this), this._doReset()
                    }, process: function (t) {
                        return this._append(t), this._process()
                    }, finalize: function (t) {
                        t && this._append(t);
                        var e = this._doFinalize();
                        return e
                    }, keySize: 4, ivSize: 4, _ENC_XFORM_MODE: 1, _DEC_XFORM_MODE: 2, _createHelper: function () {
                        function t(t) {
                            return "string" == typeof t ? B : _
                        }

                        return function (e) {
                            return {
                                encrypt: function (n, r, i) {
                                    return t(r).encrypt(e, n, r, i)
                                }, decrypt: function (n, r, i) {
                                    return t(r).decrypt(e, n, r, i)
                                }
                            }
                        }
                    }()
                }), d = (r.StreamCipher = p.extend({
                    _doFinalize: function () {
                        var t = this._process(!0);
                        return t
                    }, blockSize: 1
                }), n.mode = {}), h = r.BlockCipherMode = i.extend({
                    createEncryptor: function (t, e) {
                        return this.Encryptor.create(t, e)
                    }, createDecryptor: function (t, e) {
                        return this.Decryptor.create(t, e)
                    }, init: function (t, e) {
                        this._cipher = t, this._iv = e
                    }
                }), l = d.CBC = function () {
                    function t(t, n, r) {
                        var i = this._iv;
                        if (i) {
                            var o = i;
                            this._iv = e
                        } else var o = this._prevBlock;
                        for (var s = 0; r > s; s++) t[n + s] ^= o[s]
                    }

                    var n = h.extend();
                    return n.Encryptor = n.extend({
                        processBlock: function (e, n) {
                            var r = this._cipher, i = r.blockSize;
                            t.call(this, e, n, i), r.encryptBlock(e, n), this._prevBlock = e.slice(n, n + i)
                        }
                    }), n.Decryptor = n.extend({
                        processBlock: function (e, n) {
                            var r = this._cipher, i = r.blockSize, o = e.slice(n, n + i);
                            r.decryptBlock(e, n), t.call(this, e, n, i), this._prevBlock = o
                        }
                    }), n
                }(), y = n.pad = {}, v = y.Pkcs7 = {
                    pad: function (t, e) {
                        for (var n = 4 * e, r = n - t.sigBytes % n, i = r << 24 | r << 16 | r << 8 | r, s = [], c = 0; r > c; c += 4) s.push(i);
                        var a = o.create(s, r);
                        t.concat(a)
                    }, unpad: function (t) {
                        var e = 255 & t.words[t.sigBytes - 1 >>> 2];
                        t.sigBytes -= e
                    }
                }, m = (r.BlockCipher = p.extend({
                    cfg: p.cfg.extend({mode: l, padding: v}), reset: function () {
                        p.reset.call(this);
                        var t = this.cfg, e = t.iv, n = t.mode;
                        if (this._xformMode == this._ENC_XFORM_MODE) var r = n.createEncryptor; else {
                            var r = n.createDecryptor;
                            this._minBufferSize = 1
                        }
                        this._mode && this._mode.__creator == r ? this._mode.init(this, e && e.words) : (this._mode = r.call(n, this, e && e.words), this._mode.__creator = r)
                    }, _doProcessBlock: function (t, e) {
                        this._mode.processBlock(t, e)
                    }, _doFinalize: function () {
                        var t = this.cfg.padding;
                        if (this._xformMode == this._ENC_XFORM_MODE) {
                            t.pad(this._data, this.blockSize);
                            var e = this._process(!0)
                        } else {
                            var e = this._process(!0);
                            t.unpad(e)
                        }
                        return e
                    }, blockSize: 4
                }), r.CipherParams = i.extend({
                    init: function (t) {
                        this.mixIn(t)
                    }, toString: function (t) {
                        return (t || this.formatter).stringify(this)
                    }
                })), g = n.format = {}, k = g.OpenSSL = {
                    stringify: function (t) {
                        var e = t.ciphertext, n = t.salt;
                        if (n) var r = o.create([1398893684, 1701076831]).concat(n).concat(e); else var r = e;
                        return r.toString(a)
                    }, parse: function (t) {
                        var e = a.parse(t), n = e.words;
                        if (1398893684 == n[0] && 1701076831 == n[1]) {
                            var r = o.create(n.slice(2, 4));
                            n.splice(0, 4), e.sigBytes -= 16
                        }
                        return m.create({ciphertext: e, salt: r})
                    }
                }, _ = r.SerializableCipher = i.extend({
                    cfg: i.extend({format: k}), encrypt: function (t, e, n, r) {
                        r = this.cfg.extend(r);
                        var i = t.createEncryptor(n, r), o = i.finalize(e), s = i.cfg;
                        return m.create({
                            ciphertext: o,
                            key: n,
                            iv: s.iv,
                            algorithm: t,
                            mode: s.mode,
                            padding: s.padding,
                            blockSize: t.blockSize,
                            formatter: r.format
                        })
                    }, decrypt: function (t, e, n, r) {
                        r = this.cfg.extend(r), e = this._parse(e, r.format);
                        var i = t.createDecryptor(n, r).finalize(e.ciphertext);
                        return i
                    }, _parse: function (t, e) {
                        return "string" == typeof t ? e.parse(t, this) : t
                    }
                }), w = n.kdf = {}, S = w.OpenSSL = {
                    execute: function (t, e, n, r) {
                        r || (r = o.random(8));
                        var i = f.create({keySize: e + n}).compute(t, r), s = o.create(i.words.slice(e), 4 * n);
                        return i.sigBytes = 4 * e, m.create({key: i, iv: s, salt: r})
                    }
                }, B = r.PasswordBasedCipher = _.extend({
                    cfg: _.cfg.extend({kdf: S}), encrypt: function (t, e, n, r) {
                        r = this.cfg.extend(r);
                        var i = r.kdf.execute(n, t.keySize, t.ivSize);
                        r.iv = i.iv;
                        var o = _.encrypt.call(this, t, e, i.key, r);
                        return o.mixIn(i), o
                    }, decrypt: function (t, e, n, r) {
                        r = this.cfg.extend(r), e = this._parse(e, r.format);
                        var i = r.kdf.execute(n, t.keySize, t.ivSize, e.salt);
                        r.iv = i.iv;
                        var o = _.decrypt.call(this, t, e, i.key, r);
                        return o
                    }
                })
        }()
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min")) : "function" == typeof t && t.amd ? t(["./core.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        !function () {
            var e = t, n = e.lib, r = n.Base, i = e.enc, o = i.Utf8, s = e.algo;
            s.HMAC = r.extend({
                init: function (t, e) {
                    t = this._hasher = new t.init, "string" == typeof e && (e = o.parse(e));
                    var n = t.blockSize, r = 4 * n;
                    e.sigBytes > r && (e = t.finalize(e)), e.clamp();
                    for (var i = this._oKey = e.clone(), s = this._iKey = e.clone(), c = i.words, a = s.words, u = 0; n > u; u++) c[u] ^= 1549556828, a[u] ^= 909522486;
                    i.sigBytes = s.sigBytes = r, this.reset()
                }, reset: function () {
                    var t = this._hasher;
                    t.reset(), t.update(this._iKey)
                }, update: function (t) {
                    return this._hasher.update(t), this
                }, finalize: function (t) {
                    var e = this._hasher, n = e.finalize(t);
                    e.reset();
                    var r = e.finalize(this._oKey.clone().concat(n));
                    return r
                }
            })
        }()
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min"), e("./cipher-core.min")) : "function" == typeof t && t.amd ? t(["./core.min", "./cipher-core.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        return t.mode.ECB = function () {
            var e = t.lib.BlockCipherMode.extend();
            return e.Encryptor = e.extend({
                processBlock: function (t, e) {
                    this._cipher.encryptBlock(t, e)
                }
            }), e.Decryptor = e.extend({
                processBlock: function (t, e) {
                    this._cipher.decryptBlock(t, e)
                }
            }), e
        }(), t.mode.ECB
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min"), e("./cipher-core.min")) : "function" == typeof t && t.amd ? t(["./core.min", "./cipher-core.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        return t.pad.Pkcs7
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min"), e("./enc-base64.min"), e("./md5.min"), e("./evpkdf.min"), e("./cipher-core.min")) : "function" == typeof t && t.amd ? t(["./core.min", "./enc-base64.min", "./md5.min", "./evpkdf.min", "./cipher-core.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        return function () {
            var e = t, n = e.lib, r = n.BlockCipher, i = e.algo, o = [], s = [], c = [], a = [], u = [], f = [], p = [],
                d = [], h = [], l = [];
            !function () {
                for (var t = [], e = 0; 256 > e; e++) t[e] = 128 > e ? e << 1 : e << 1 ^ 283;
                for (var n = 0, r = 0, e = 0; 256 > e; e++) {
                    var i = r ^ r << 1 ^ r << 2 ^ r << 3 ^ r << 4;
                    i = i >>> 8 ^ 255 & i ^ 99, o[n] = i, s[i] = n;
                    var y = t[n], v = t[y], m = t[v], g = 257 * t[i] ^ 16843008 * i;
                    c[n] = g << 24 | g >>> 8, a[n] = g << 16 | g >>> 16, u[n] = g << 8 | g >>> 24, f[n] = g;
                    var g = 16843009 * m ^ 65537 * v ^ 257 * y ^ 16843008 * n;
                    p[i] = g << 24 | g >>> 8, d[i] = g << 16 | g >>> 16, h[i] = g << 8 | g >>> 24, l[i] = g, n ? (n = y ^ t[t[t[m ^ y]]], r ^= t[t[r]]) : n = r = 1
                }
            }();
            var y = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], v = i.AES = r.extend({
                _doReset: function () {
                    if (!this._nRounds || this._keyPriorReset !== this._key) {
                        for (var t = this._keyPriorReset = this._key, e = t.words, n = t.sigBytes / 4, r = this._nRounds = n + 6, i = 4 * (r + 1), s = this._keySchedule = [], c = 0; i > c; c++) if (n > c) s[c] = e[c]; else {
                            var a = s[c - 1];
                            c % n ? n > 6 && c % n == 4 && (a = o[a >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a]) : (a = a << 8 | a >>> 24, a = o[a >>> 24] << 24 | o[a >>> 16 & 255] << 16 | o[a >>> 8 & 255] << 8 | o[255 & a], a ^= y[c / n | 0] << 24), s[c] = s[c - n] ^ a
                        }
                        for (var u = this._invKeySchedule = [], f = 0; i > f; f++) {
                            var c = i - f;
                            if (f % 4) var a = s[c]; else var a = s[c - 4];
                            u[f] = 4 > f || 4 >= c ? a : p[o[a >>> 24]] ^ d[o[a >>> 16 & 255]] ^ h[o[a >>> 8 & 255]] ^ l[o[255 & a]]
                        }
                    }
                }, encryptBlock: function (t, e) {
                    this._doCryptBlock(t, e, this._keySchedule, c, a, u, f, o)
                }, decryptBlock: function (t, e) {
                    var n = t[e + 1];
                    t[e + 1] = t[e + 3], t[e + 3] = n, this._doCryptBlock(t, e, this._invKeySchedule, p, d, h, l, s);
                    var n = t[e + 1];
                    t[e + 1] = t[e + 3], t[e + 3] = n
                }, _doCryptBlock: function (t, e, n, r, i, o, s, c) {
                    for (var a = this._nRounds, u = t[e] ^ n[0], f = t[e + 1] ^ n[1], p = t[e + 2] ^ n[2], d = t[e + 3] ^ n[3], h = 4, l = 1; a > l; l++) {
                        var y = r[u >>> 24] ^ i[f >>> 16 & 255] ^ o[p >>> 8 & 255] ^ s[255 & d] ^ n[h++],
                            v = r[f >>> 24] ^ i[p >>> 16 & 255] ^ o[d >>> 8 & 255] ^ s[255 & u] ^ n[h++],
                            m = r[p >>> 24] ^ i[d >>> 16 & 255] ^ o[u >>> 8 & 255] ^ s[255 & f] ^ n[h++],
                            g = r[d >>> 24] ^ i[u >>> 16 & 255] ^ o[f >>> 8 & 255] ^ s[255 & p] ^ n[h++];
                        u = y, f = v, p = m, d = g
                    }
                    var y = (c[u >>> 24] << 24 | c[f >>> 16 & 255] << 16 | c[p >>> 8 & 255] << 8 | c[255 & d]) ^ n[h++],
                        v = (c[f >>> 24] << 24 | c[p >>> 16 & 255] << 16 | c[d >>> 8 & 255] << 8 | c[255 & u]) ^ n[h++],
                        m = (c[p >>> 24] << 24 | c[d >>> 16 & 255] << 16 | c[u >>> 8 & 255] << 8 | c[255 & f]) ^ n[h++],
                        g = (c[d >>> 24] << 24 | c[u >>> 16 & 255] << 16 | c[f >>> 8 & 255] << 8 | c[255 & p]) ^ n[h++];
                    t[e] = y, t[e + 1] = v, t[e + 2] = m, t[e + 3] = g
                }, keySize: 8
            });
            e.AES = r._createHelper(v)
        }(), t.AES
    }), !function (r, i) {
        "object" == typeof n ? module.exports = n = i(e("./core.min")) : "function" == typeof t && t.amd ? t(["./core.min"], i) : i(r.CryptoJS)
    }(this, function (t) {
        return t.enc.Utf8
    })
}).call(Pass);
var Pass = "undefined" == typeof window.Pass ? {} : window.Pass,
    publicData = "undefined" == typeof window.publicData ? {} : window.publicData;
!function (t, e) {
    try {
        if ("Microsoft Internet Explorer" === navigator.appName && ("MSIE6.0" === navigator.appVersion.split(";")[1].replace(/[ ]/g, "") || "MSIE7.0" === navigator.appVersion.split(";")[1].replace(/[ ]/g, ""))) return this.ie = 67, !1;
        Pass.mkd = function (t) {
            this.init(t)
        }, Pass.mkd.prototype = {
            init: function (t) {
                this.initConfig(t), this.mobilecheck(), this.initMock(), this.initApi(), this.initEvent()
            }, mobilecheck: function () {
                try {
                    /Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent) ? this.wapsetconfig() : this.pcsetconfig()
                } catch (t) {
                    this.wapsetconfig()
                }
            }, wapsetconfig: function () {
                this.devicetype = "wap", this.eventclick = "touchstart", this.eventmove = "touchmove", this.store.sendUrl = "https://wappass.baidu.com/viewlog", this.store.countnum = 10
            }, pcsetconfig: function () {
                this.devicetype = "pc", this.eventclick = "click", this.eventmove = "mousemove", this.store.sendUrl = "https://passport.baidu.com/viewlog", this.store.countnum = 20
            }, getTimeStr: function () {
                var t = new Date, e = t.getTime();
                return e
            }, encrypt: function (t) {
                var e = this.store.aesKeyLeft + this.store.aesKeyRight, n = Pass.CryptoJS.enc.Utf8.parse(e),
                    r = Pass.CryptoJS.enc.Utf8.parse(t), i = Pass.CryptoJS.AES.encrypt(r, n, {
                        mode: Pass.CryptoJS.mode.ECB,
                        padding: Pass.CryptoJS.pad.Pkcs7
                    });
                return i.toString()
            }, initConfig: function (t) {
                this.store = {
                    storeVer: "1.0.1",
                    count: 0,
                    countnum: 10,
                    ak: "1e3f2dd1c81f2075171a547893391274",
                    aesKeyLeft: "6bffae1c",
                    aesKeyRight: "appsapi0",
                    sendUrl: "https://wappass.baidu.com/viewlog"
                }, this.store.ak = t.ak || ""
            }, initMock: function () {
                this.rzData = {cl: [], mv: [], sc: [], kb: [], cr: this.getScreenInfo(), ac_c: 0}, this.dsData = {}
            }, initApi: function () {
                var t = this, e = {};
                e.ak = t.store.ak, t.ajax({
                    url: t.store.sendUrl,
                    jsonp: "jsonpCallbacka",
                    data: e,
                    success: function (e) {
                        t.dsData = e.data || {}, t.store.aesKeyLeft = e.data.as || "6bffae1c"
                    },
                    error: function () {
                        t.errorData()
                    }
                })
            }, initEvent: function () {
                var n = this;
                n.addHandler(e, n.eventclick, function (e) {
                    e = e || t.event;
                    var r = {}, i = "wap" === n.devicetype ? e.changedTouches[0] : e;
                    r.x = parseInt(i.clientX, 10), r.y = parseInt(i.clientY, 10), r.t = n.getTimeStr(), n.rzData.cl.push(r), n.reportedOpportunity()
                }), n.addHandler(e, n.eventmove, n.throttle(function (e) {
                    e = e || t.event || arguments.callee.caller.arguments[0];
                    var r = {}, i = "wap" === n.devicetype ? e.changedTouches[0] : e;
                    r.fx = parseInt(i.clientX, 10), r.fy = parseInt(i.clientY, 10), r.t = n.getTimeStr(), n.rzData.mv.push(r), n.reportedOpportunity()
                }, 150)), n.addHandler(e, "keyup", function () {
                    var t = {};
                    t.key = "a", t.t = n.getTimeStr(), n.rzData.kb.push(t), n.reportedOpportunity()
                }), n.addHandler(t, "scroll", n.throttle(function (r) {
                    r = r || t.event;
                    var i = {};
                    i.tx = e.documentElement.scrollLeft || e.body.scrollLeft, i.ty = e.documentElement.scrollTop || e.body.scrollTop, n.rzData.sc.push(i), n.reportedOpportunity()
                }, 300))
            }, throttle: function (t, e) {
                var n;
                return function () {
                    return n ? void 0 : (n = setTimeout(function () {
                        n = null
                    }, e), t.apply(this))
                }
            }, getScreenInfo: function () {
                try {
                    var n = t.mozInnerScreenY || t.screenTop, r = t.mozInnerScreenX || t.screenLeft;
                    "undefined" == typeof n && (n = 0), "undefined" == typeof r && (r = 0);
                    var i = e.documentElement.clientWidth || e.body.clientWidth,
                        o = e.documentElement.clientHeight || e.body.clientHeight, s = t.screen.width,
                        c = t.screen.height, a = t.screen.availWidth, u = t.screen.availHeight, f = t.outerWidth,
                        p = t.outerHeight, d = e.documentElement.scrollWidth || e.body.scrollWidth,
                        h = e.documentElement.scrollWidth || e.body.scrollHeight;
                    return {
                        screenTop: n,
                        screenLeft: r,
                        clientWidth: i,
                        clientHeight: o,
                        screenWidth: s,
                        screenHeight: c,
                        availWidth: a,
                        availHeight: u,
                        outerWidth: f,
                        outerHeight: p,
                        scrollWidth: d,
                        scrollHeight: h
                    }
                } catch (l) {
                }
            }, reportedOpportunity: function () {
                var t = this;
                ++t.store.count, t.store.count > t.store.countnum && t.postData()
            }, postData: function (t) {
                var e = this, n = JSON.stringify(e.rzData), r = e.encrypt(n), i = {};
                i.ak = e.store.ak, i.as = e.store.aesKeyLeft || "", i.fs = r, e.store.count = 0, e.initMock(), e.ajax({
                    url: e.store.sendUrl,
                    jsonp: "jsonpCallbackb",
                    data: i,
                    success: function (n) {
                        0 === n.code && n.data && n.data.ds && n.data.tk ? (e.dsData = n.data || {}, e.store.aesKeyLeft = n.data.as || "6bffae1c", t && t(n)) : (e.errorData(), t && t(e.dsData))
                    },
                    error: function () {
                        e.errorData(), t && t(e.dsData)
                    }
                })
            }, getDs: function () {
                return this.dsData.ds
            }, getTk: function () {
                return this.dsData.tk
            }, getDataAsync: function (t) {
                var e = this;
                this.store.count > 0 ? this.postData(function (n) {
                    n.data ? t && t(n.data) : t && t(e.dsData)
                }) : t && t(this.dsData)
            }, setData: function (t, e) {
                this.rzData[t] = e
            }, errorData: function () {
                this.dsData.ds = "iggkFNY5Z8odmaVWu0oRjsneNUhc65bBgY7IeyRqe6S++zbDz3JlV99QbnGMERCkRH57fRY77K4T0r5PTAk/Xoi21K1UoYgRM089xf8wdrl+FzMEwt13AaO5Dq4G0u5I49RTUPfwr4/MuB6b6hOcPwItorZarOJw+1yy7pp4LUUwmk1kqy5LXHQ2vXVRRIzBmEYkAd4LEMWB3TNN/Ehb/v2mIBHtw+V8prcJi637saZP2NZL2qVarc81Js3Ls1ICNon1ghv5Vly2IjvClAg1oFtLIYqQN5/lojRrg11ajOBnVkwrC/MbVsQ+paftGrOl9PHjBbRFq8+5LwAmVysU+83iZLMBC3M7NhKKlIiTJpvDAR+KrUAG1HP8GTH8L8mrVjuno9MIfX6oloTXcpZHfXZln2FwwTosFnTHZ0iaqdnCklq7W+xuSUyIYydL72/hi34W2QIyEh6PilSgac2Mgjh80ygOrj9hrR7+0rlc5c+cpeILmTUI3FNlzY0degKH81V3dYUSNO27zcZ2KG3Zxb4I5SCnxYbEigiJJQkemNNAT+GiX2Je2XR9Xivcn0pFkdxEReHb2uHStsvaCaI+AxmHXc8PBV6X6CdAtRtSLnA+NBYrRrVGBmZIQd112r6eSjJeO7R9ItEXpKnAb2jhyZ+dyBeQNYee3JeyNZpofxAsXyHLFkrKOqaceZBzhvxL9SZwADneJcVSYvLS9Fbf9RAo0FHHrAFjphDmLe3wPcIgyiAKnpvgw58Z13bY1LYKEM3QYt+U974GYlahfJpett38TeJSbfcn3f1sk1+Q00jb46ivKadXTztpkD0z++pKJtMCgc5pLJg40QLb6wbTpqa4wVULYnCouw6/9H5+COUDC0RKfLDhYzdcCCygSGlA", this.dsData.tk = "3338yojP4YX/CPjsNQpSEls3CchneKTLKfp9KvCfkBgWNCk="
            }, ajax: function (t) {
                function e(t) {
                    t.type = (t.type || "GET").toUpperCase(), t.data = r(t.data);
                    var e = null;
                    e = window.XMLHttpRequest ? new XMLHttpRequest : new window.ActiveXObjcet("Microsoft.XMLHTTP"), e.onreadystatechange = function () {
                        if (4 === e.readyState) {
                            var n = e.status;
                            if (n >= 200 && 300 > n) {
                                var r = "", i = e.getResponseHeader("Content-type");
                                r = -1 !== i.indexOf("xml") && e.responseXML ? e.responseXML : "application/json" === i ? JSON.parse(e.responseText) : e.responseText, t.success && t.success(r)
                            } else t.error && t.error(n)
                        }
                    }, "GET" === t.type ? (e.open(t.type, t.url + "?" + t.data, !0), e.send(null)) : (e.open(t.type, t.url, !0), e.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"), e.send(t.data))
                }

                function n(t) {
                    var e = t.jsonp + i(), n = document.getElementsByTagName("head")[0];
                    t.data.callback = e;
                    var o = r(t.data), s = document.createElement("script");
                    s.onload = function () {
                        setTimeout(function () {
                            window[e] && t.error && t.error()
                        }, 200)
                    }, n.appendChild(s), window[e] = function (r) {
                        n.removeChild(s), clearTimeout(s.timer), window[e] = null, t.success && t.success(r)
                    }, s.onerror = function (e) {
                        t.error && t.error(e)
                    }, s.src = t.url + "?" + o, t.time && (s.timer = setTimeout(function () {
                        window[e] = null, n.removeChild(s), t.error && t.error({message: "超时"})
                    }, t.time))
                }

                function r(t) {
                    var e = [];
                    for (var n in t) t.hasOwnProperty(n) && e.push(encodeURIComponent(n) + "=" + encodeURIComponent(t[n]));
                    return e.push("v=" + i()), e.join("&")
                }

                function i() {
                    return Math.floor(1e4 * Math.random() + 500)
                }

                t = t || {}, t.data = t.data || {}, t.jsonp ? n(t) : e(t)
            }, addHandler: function (t, e, n) {
                t.addEventListener ? t.addEventListener(e, n, !1) : t.attachEvent ? t.attachEvent("on" + e, n) : t["on" + e] = n
            }
        }
    } catch (n) {
    }
}(window, document);